package com.intelligent.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.intelligent.pojo.Quotation;
import com.intelligent.pojo.QuotationDetail;
import com.intelligent.vo.QuotationPageReq;

import java.util.List;

/**
 * 报价单Service接口
 */
public interface QuotationService extends IService<Quotation> {
    
    /**
     * 分页查询报价单（包含关联数据）
     * @param quotationPageReq 查询条件
     * @return 分页结果
     */
    Page<Quotation> pageWithRelations(QuotationPageReq quotationPageReq);
    
    /**
     * 创建报价单（包含业务逻辑）
     * @param quotation 报价单信息
     * @return 创建结果
     */
    Quotation createQuotation(Quotation quotation);
    
    /**
     * 创建报价单并自动生成明细
     * @param quotation 报价单信息
     * @param quotationDetails 报价明细列表
     * @return 创建结果
     */
    Quotation createQuotationWithDetails(Quotation quotation, List<QuotationDetail> quotationDetails);
    
    /**
     * 获取报价单详情（包含关联数据）
     * @param id 报价单ID
     * @return 报价单详情
     */
    Quotation getQuotationDetail(Long id);
}
